RegExpr Examples

directory File count
$PATH의 디렉토리 개수 카운터
#!/bin/bash
mypath=$(echo $PATH | sed 's/:/ /g')
count=1
for directory in $mypath; do
check=$(ls $directory)
for item in $check; do
count=$[ $count + 1 ]
done
echo -e "$directory\t:\t$count"
count=0
done
tel number validation
(123)456-7890
(123) 456-7890
123-456-7890
123.456.7890
# ^\(?[2-9][0-9]{2}\)?( |-|\.)[0-9]{3}( |\.|-)[0-9]{4}$
echo -e '317-555-1234\n000-555-1234\n(317)555-1234' | gawk --re-interval '/^\(?[2-9][0-9]{2}\)?(| |-|\.)[0-9]{3}(| |-|\.)[0-9]{4}$/{print $0}'
email address validation
username@hostname
username 으로 이메일에서 점, 대시, 더하기 기호, 밑줄 등이 사용 가능하다
hostname(도메인 이름은) 점, 밑줄이 사용가능하지만, 최상위 도메인을  뜻하는 가장 마지막 . 이후는 상당히 제약을 가진다.
# username
# ^([a-zA-Z0-9_\-\.\+]+)@
# hostname
# ([a-zA-Z0-9_\-\.]+)
# top level domain
# \.([a-zA-Z]{2,5})$
echo -e 'rich@here.now\nrich@here.now.\nrich@here-now\n@rich.blum@here.now\ncsian7386@gmail.com' | gawk --re-interval '/^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/{print $0}'